{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 7,
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "def draw_loss(filepath):\n",
    "    import matplotlib.pyplot as plt\n",
    "    loss_list = list(np.load(filepath))\n",
    "    plt.plot(list(range(1, len(loss_list) + 1)), loss_list)"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 试验-教师网络训练\n",
    "损失函数：交叉熵\n",
    "\n",
    "优化器：Adam(lr = 0.001)\n",
    "\n",
    "epoch：100"
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "source": [
    "draw_loss('cache/models/teacher/teacher_loss_150.npy')"
   ],
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 实验-1\n",
    "损失函数：$loss = loss_{one-hot}  + loss_{information-entropy} * 5 + loss_{active} * 0.1 + loss_{kd}$\n",
    "\n",
    "生成器优化器：Adam(lr = 0.2)\n",
    "\n",
    "lr_scheduler：CosineAnnealingWarm(T_0 = 5, T_mult = 2)\n",
    "\n",
    "学生网络优化器：Adam(lr = 2e-3)\n",
    "\n",
    "lr_scheduler：CosineAnnealingWarm(T_0 = 5, T_mult = 2\n",
    "\n",
    "epoch = 100\n",
    "\n",
    "oh = 1, ie = 5, a = 0.1"
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "source": [],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "source": [
    "draw_loss('cache/models//student_epoch_100.npy')"
   ],
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "markdown",
   "source": [
    "# 试验-2\n",
    "加了个硬损失loss_kd_h = self.criterion(self.student(gen_img.detach()), pseudo_labels)\n",
    "\n",
    "loss = loss_onehot * self.oh + loss_information_entropy * self.ie + loss_active * self.a + loss_kd + loss_kd_h"
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "source": [
    "draw_loss('cache/models/student/student_epoch_200.npy')"
   ],
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "metadata": {}
  }
 ],
 "metadata": {
  "orig_nbformat": 4,
  "language_info": {
   "name": "python",
   "version": "3.6.9",
   "mimetype": "text/x-python",
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "pygments_lexer": "ipython3",
   "nbconvert_exporter": "python",
   "file_extension": ".py"
  },
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3.6.9 64-bit"
  },
  "interpreter": {
   "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}